package org.ccccye.multilevel.service;

import org.ccccye.multilevel.pojo.Category;
import org.ccccye.multilevel.pojo.TreeNode;

import java.util.List;

public interface MultiLevelService {
    /**
     * 查询节点和它的子节点
     * @param id 0即为查询全部节点
     * @return
     */
    List selectList(Integer id);

    /**
     * 查询节点和它的子节点（树）
     * @param id 0即为查询全部节点
     * @return
     */
    List selectListForTree(Integer id);

    /**
     * 查询同层级的节点
     * @param id
     * @return
     */
    List selectPeerById(Integer id);

    /**
     * 查询节点的直属子节点
     * @param id
     * @return
     */
    List selectChildById(Integer id);

    /**
     * 查询节点的深度
     * @param id
     * @return
     */
    Integer deepById(Integer id);

    /**
     * 插入节点
     * @param category
     * @return
     */
    Integer insertNode(Category category);

    /**
     * 修改节点
     * @param category
     * @return
     */
    Integer updateNode(Category category);

    /**
     * 删除节点
     * @param category
     * @return
     */
    Integer deleteNode(Category category);
}
